package gwtgaetools.client.ui;

import gwtgaetools.client.BasicList;
import gwtgaetools.client.listeners.ListListener;
import gwtgaetools.client.listeners.SelectItemListener;

import com.google.gwt.user.client.ui.Composite;

public abstract class ListPanel<T> 
	extends Composite 
	implements 	ListListener<T>,
				SelectItemListener<T> {

	protected BasicList<T> list;
	
	public void setList(BasicList<T> l) {
		
		if (list!=null) {
			list.deregisterListener(this);
		}
		
		list = l;
		
		if (l != null) {
			l.registerListener(this);
		}
	}
		
	// Default: do nothing.
	@Override public void selectItem(T t, BasicLabel<T> bl) {}

	// Default: do nothing.
	@Override public void deselectItem(T t, BasicLabel<T> bl) {}

}
